Modellek eredményeinek értelmezése

Bemutatkozás

Oltyán Gábor
Programozó Matematikus, Közgazdász, Projekt Menedzser

Bevezetés: értelmezhető vs. magyarázható

Kezdésként nézzünk meg két alapfogalmat:

Egy döntési fa megjelenítése és értelmezése (hitel bedőlés egyszerű modellje): Döntési fa értelmezése


Egy lineáris regressziós modell (maximális személyi kölcsön összegének meghatározása):

Y = 10.000 Életkor + 2 Jövedelem + 250.000

Persze az, hogy egy modell értelmezhető, vagy "csak" magyarázható viszonylagos, nem egyértelmű, hiszen a döntési fákat vagy regressziós modelleket csak akkor tudjuk értelmezni, ha a szükséges szakmai tudással rendelkezünk. De még egy jól felkészült szakember egy döntési fát könnyen tud értelmezni, addig a tipikus random forest modelleket (melyek különböző döntési fákat tartalmaznak, de ezekből általában 100-500 darabot) valószínűleg a legkiválóbb szakemberek sem tudják közvetlenül értelmezni.

A következő ábra a könnyebben értelmezhető, nehezebben értelmezhető skálán mutat be néhány tipikus gépi tanulási/mesterséges intelligencia modellt (forrás: link): IML_XAI

Az Értelmezhető Gépi Tanulás (Interpretable Machine Learning - IML) a könnyebben, közvetlenül értelmezhető modellek kifejlesztésére, értelmezhetőségének egyszerűsítésére fókuszál.

A Magyarázható Mesterséges Intelligencia (Explainable AI - XAI) a nehezebben értelmezhető, inkább csak magyarázható modellek működésének, logikájának, eredményeinek magyarázatával foglalkozik.

Explainable AI

A modellek magyarázhatósága már a kezdetektől fogva központi kérdés volt a machine learning területén, és kiemelt fókuszt kapott a közvetlenül nem értelmezhető, nem monoton gépi tanulási algoritmusok megjelenése után.

Miért fontos ezzel foglalkozni?

Legfontosabb kérdések

Értelmezési scope-ok

Global vs. Local

A fentiek biztosítására több különböző technika, segédeszköz áll rendelkezésre:

Mielőtt belevágnánk ezek kipróbálásába állítsuk össze a teszt környezetünket!

Megjegyzés: a következő példákban az Anaconda ökoszisztémában alapból nem meglévő csomagokkal fogunk dolgozni, ezeket telepíteni vagy róluk többet megtudni a következők alapján lehet (amennyiben nem Anaconda ökoszisztémában dolgozunk, úgy conda helyett a pip parancsot használva telepíthetőek ezek a csomagok):

A Partial Dependence Plot vizualizációjára több más csomag is használható (pl.: sklearn.inspection.plot_partial_dependence vagy pdpbox), de az átfogó (globális és lokális) értelmezéshez a fenti csomagok több lehetőséget biztosítanak.

Megjegyzés: jelen oktatási anyag utolsó frissítésekor (2023.06.02) conda ökoszisztémiában az összes fenti csomag automatikus, zökkenőmentes telepítése nem mindig működik, kisebb nagyobb problémákat tapasztalhatunk:

Üzleti probléma és az Adatok

A csomagok ismertetését USA 1994-es felnőtt lakosság körében végzett népszámlálási adatain fogjuk elvégezni. A magyarázó változók a következők:

A célváltozó (labels) pedig azt tartalmazza, hogy az adott személy éves jövedelme meghaladja-e az 50.000 USD-t (True), vagy sem (False).

Importáljuk be a kezdeti csomagokat, és ha kell, inicializáljuk azokat:

Az adatbázis a SHAP csomagban megtalálható, így az egyszerűség kedvéért olvassuk be onnan (az adatok a Kaggle-n is elérhetőek, így - azok kedvéért, akik nem tudják vagy nem akarják a SHAP csomagot használni - a Kaggle-n elérhető adatokat is csatoltuk):

Nézzünk bele az adatokba:

És nézzünk egy gyors áttekintést is:

A kategória változókat az egyszerűség és gyorsaság kedvéért feleltessük meg egyszerűen számokkal (a gyakorlatban ezeket flag/dummy változókká alakítjuk, hogy elkerüljük a modell számára, hogy olyan feltételezésekkel éljen, melyek egyébként nem igazak).

Számoljuk össze a célváltozóban a 0/1 értékek előfordulását:

Látható, hogy az éves 50k USD jövedelmet jóval kevesebben érik el a népszámlálási adatok között szereplők közül, mint amennyien ennél alacsonyabb éves jövedelemmel rendelkeznek.

Válasszunk le egy 30%-os teszt sokaságot:

... illetve készítsünk el egy ezzel megegyező méretű másik adathalmazt is, mely a kategória változókat eredeti formájukban tartalmazza (a későbbi megjelenítések egyszerűsítése végett):

A csak numerikus magyarázó változókat tartalmazó tanító sokaság:

... és ugyanez, de az eredeti numerikus és kategória magyarázó változókkal:

Építsünk egy (közvetlenül nehezen értelmezhető) alap modellt a boosting algoritmusok közül kiválasztott xgboost segítségével.

A metaklasszifikátor modellek alap (vagy gyenge) osztályozók sorozatát illesztik egy adott tanítóhalmazon, majd ezek kimeneteit (becsléseit) kombinálják össze valamilyen módszerrel. Közös előnyük, hogy jobb teljesítmény érhető el a kombinált modellekkel, illetve a módszer használatával a túltanulás ellen is sikeresen lehet küzdeni. A módszer hátránya, hogy időigényesebb megépíteni és használni, illetve nehezebb magyarázni az (üzleti) felhasználóknak.

A modellek építésére több különböző technika is rendekezésre áll. Ezek közül egyik a boosting módszer, melynek lényege, hogy egy iteratív folyamatban, egymásra építve építünk modelleket, az egyes iterációkban előállt hibákat a következő iterációban javítva valamilyen módszerrel. A boosting módszerek közé tartozik a gradient boosting machine (GBM) modell, aminek az anomáliadetekciót igénylő alkalmazásokban (pl. DNS szekvencia elemzés, cyberbiztonság elemzés) van nagy szerepe, illetve az xgboost modell is.

Az xgboost egy optimalizált, elosztottan működő, döntési fákra, mint alapmodellekre épülő gradient boosting könyvtár, ami a 2016-os indulása óta rendkívüli népszerűségre tett szert (Kaggle versenyeken valamint ipari felhasználásokban egyaránt). Maga a könyvtár open-source, több száz fős fejlesztői közösség van mögötte. A hardveres és szoftveres optimalizációk mellett algoritmikus fejlesztéseket is tartalmaz.

Ezt a modellt fogjuk a továbbiakban vizsgálni és magyarázni:

Nézzünk bele a teszt sokaságban a becsült jövedelmi kategória értékekbe:

Klasszikus módszerek

Hagyományos technikák

A hagyományos modell teljesítmény metrikákat egyesével le lehet kérdezni a scikit-learn csomag segítségével (általában ezt a megoldást használjuk). Most a külön csatolt segéd csomag display_model_performance_metrics függvényét használjuk, mely a scikit-learn csomag több metrikáját (pontosság, keveredési mátrix, stb.) összevonva jeleníti meg (érdemes megnézni a függvény forráskódját, mely alapján kidolgozhatjuk a számunkra érdekes metrikák egy lépésben történő megjelenítését):

Változók fontossága (feature importance)

A gép tanulási modellek többségét nehéz önmagában értelmezni. A paraméter alapú algoritmusok - mint például a Logisztikus Regresszió - esetében könnyű dolgunk van, hiszen a modell együtthatók nagyságából sokszor lehet következtetni az adott magyarázó változó fontosságára, és az eredményre kifejtett hatásának irányára is (ugyanakkor figyelemmel kell lenni a multikollinearitás problémájára).

A nem-paraméteres modelleket nehezebb értelmezni, mivel a paraméterek teljes száma nem korlátozott, és az adatmennyiség növekedésével növekedhet. Egyes nem-paraméteres modellek, például a döntési fa alapú modellek, rendelkeznek néhány „gyári” modellértelmezési módszerrel, például a jellemzők fontosságával (feature importance), ami segít megérteni, hogy mely jellemzők lehetnek befolyásosak a modellben az előrejelzések létrehozásakor.

A következő lépésben kipróbáljuk az XGBoosthoz tartozó magyarázó változó fontossághoz kapcsolódó lehetőségeket. Ez a modell típus lehetővé teszi a feature importance vizsgálatát a következő aspektusok mentén:

Megfigyelhetjük, hogy a fenti beépített metrikák nem konzisztensek, más sorrendet adhatnak, vagy ellentmondhatnak egymásnak. Ezek a problémák is azt mutatják, hogy van létjogosultsága olyan általános csomagoknak (amiket a következőkben kipróbálunk), melyek konzisztens, megismételhető eredményt adnak.

Partial Dependence Plot

A Partial Dependece (részleges függőség) egy jellemző marginális hatását írja le a modell előrejelzésére, miközben a modell többi jellemzője konstans. A részleges függőség deriváltja egy magyarázó változó hatását írja le (a regressziós modellben szereplő magyarázó változó együtthatóval analóg módon).

A Partial Dependence Plot - részleges függőségi diagram (PDP vagy PD diagram) egy jellemző marginális hatását mutatja egy megfelelően illesztett modell előrejelzett/becsült kimenetelére. A PDP-k megmutathatják, hogy a cél változó és a magyarázó változók közötti kapcsolat lineáris, monoton vagy esetleg ezeknél összetettebb-e.

Mit olvashatunk le ezekről a diagrammokról?

Individual conditional expectation (ICE)

A PDP-hez hasonlóan az Individual Conditional Expectation (~ egyéni feltételes várakozási) (ICE) diagram a célfüggvény és a kiválasztott bemeneti jellemző közötti függőséget mutatja. Azonban a PDP-vel ellentétben, amely az bemeneti jellemző átlagos hatását mutatja, az ICE-diagram az egyes megfigyelésekhez külön-külön, megfigyelésenként egy vonallal megjeleníti az előrejelzés adott jellemzőtől való függőségét.

Az emberi érzékelés korlátai miatt csak 1-D diagram (vagyis egy kiválasztott jellemző) támogatott az ICE-diagram esetében (és esetleg érdemes szűkíteni a megjelenítendő megfigyelések körét is).

Ezekről a diagramokról is le tudjuk az előzőeket olvasni?

Mikor lehet jó egy ilyen diagram?

Megjegyzés: Ha szeretnénk a PDP tartalmát is leolvasni, akkor a kind='both' beállítást tudjuk használni.

Globális és lokális értelmezést biztosító technikák

ELI5

Az ELI5 egy olyan Python-csomag, amely segít a gépi tanulási algoritmusok hibakeresésében és az előrejelzéseik intuitív, könnyen érthető magyarázatában. A következőkben bemutatandó három gépi tanuláshoz kapcsolódó modell értelmezési keretrendszer közül talán ez a legegyszerűbb, ugyanakkor nem támogatja az általános modell-szintű értelmezéseket, viszont a a leggyakrabban használt gépi tanulási keretrendszerek támogatottak (scikit-learn, keras, xgboost, stb.).

Nézzünk meg néhány intuitív modellértelmezési módot az ELI5-tel az osztályozási modellünkön.

Globális értelmezés

A döntési fa alapú modellek esetében az ELI5 általában nem tesz semmi extrát, az előző részben bemutatott, beépített feature importance számítási módszereket használja. Alapértelmezés szerint a Gain metrika kerül felhasználásra:

Lokális értelmezés

Az egyik legjobb módja annak, hogy elmagyarázzuk a modell-előrejelzési döntéseket egy üzleti felhasználónak, ha megvizsgáljuk az egyes megfigyelésekhez kapcsolódó előrejelzéseket/becsléseket. Az ELI5 ezt úgy teszi meg, hogy minden egyes magyarázó változóhoz olyan súlyozást számol ki, amely azt reprezentálja, hogy az adott változó milyen hatással lehetett a végső előrejelzési döntéshez az összes fát figyelembe véve.

A súlyszámítás ötletét a http://blog.datadive.net/interpreting-random-forests/ részletesen bemutatja; Az ELI5 ennek az algoritmusnak a független megvalósítását biztosítja az XGBoost és a legtöbb scikit-learn döntési fa alapú módszer esetében, amely határozottan a modell-agnosztikus (általános, minden modell típusra használható) értelmezés felé halad, de még nem tisztán modell-agnosztikus, mint például a LIME.

Az előrejelzés általában az egyes magyarázó változók valamilyen hozzájárulásának, illetve egy konstans érték (bias) összegeként definiálható.

Becslési elemzés egy olyan személyre, akinek az éves jövedelme nem haladja meg az 50k USD-t:

És becslési elemzés egy olyan személyre, akinek az éves jövedelme meghaladja az 50k USD-t:

Érdekes látni, hogy hasonló magyarázó változók játszák a legfontosabb szerepet mindkét, gyökeresen eltérő becslési kimenetelű esetben!

Hogy tudjuk magyarázni a két megfigyelés közötti jövedelmi különbséget?

Skater

A Skater egy olyan modellek értelmezését támogató, egységes keretrendszer, amely lehetővé teszi a modellértelmezést a modellek minden formájához (modell-agnosztikus). Ez egy nyílt forráskódú python-könyvtár, amelyet arra terveztek, hogy a fekete doboz-modellek előrejelzési/becslési döntéseit globálisan (a teljes adatkészlet alapján) és lokálisan (egyedi előrejelzésre vonatkozó következtetés) is felfeldje.

Globális értelmezés

A Skater globális értelmezést támogató megoldásai a feature importance és a Partial Dependence Plot, melyeket a legújabb modell típusok esetében is biztosítani tudja.

A Skater esetében a tipikus munkafolyamat a következő:

Feature Importance

A feature importance (változó fontossága) egy általános fogalom arra vonatkozóan, hogy a prediktív modell milyen mértékben támaszkodik egy adott változóra. A Skater feature importance megvalósítása információelméleti kritériumokon alapul, amelyek az előrejelzések változásának entrópiáját mérik, adott változó változtatása esetén. Másképpen: minél inkább függenek a modell döntései egy változótól, annál inkább igaz az, hogy a változó értékeinek változtatása esetében a modell előrejelzési is változnak.

Érdemes megfigyelni, hogy ez egy általános megoldás, nem egyezik meg a korábban 3 különböző módon számolt feature importance sorrend egyikével sem!

Partial Dependence Plot

A Skater 1-D és 2-D PDP-ket is tud készíteni, nézzük meg most az 1-D ábrákat az eddig vizsgált változókra:

Az életkorra a PDP a következő (az eredeti elemszámot 23.000-ről 10.000-re csökkentettem a gyorsabb megjelenítés érdekében):

Az életkor a jövedelemre nézve egy komplexebb összefüggést mutat, ahol általában az 50-60 év közöttiek rendelkezhetnek a legnagyobb éves jövedelemmel.

Most vizsgáljuk meg az iskolai végzettség jövedelemre gyakorolt hatását:

Az eredmény egy monoton növekvő, közel lineáris összefüggés.

A Skater két változó együttes hatását is tudja PDP-n vizualizálni. Vizsgáljuk meg az előzőekben külön-külön vizsgált életkor és iskolai végzettség hatását az 50k USD feletti éves jövedelemre:

Lokális értelmezés

A modellek egy adott megfigyelés vagy megfigyelés csoport környéki előrejelzésének magyarázata általános módon két megközelítéssel lehetséges:

vagy

LIME

A Local Interpretable Model-agnostic Explanations (LIME) a fenti módszerek közül a másodikat használja a következő, leegyszerűsített algoritmus alapján:

  1. Kiválasztjuk azt a megfigyelést, melyet vagy melynek környezetét magyarázni szeretnénk
  2. A megfigyelés környezetében generálunk új mesterséges megfigyeléseket megváltoztatva a megfigyelés magyarázó változókban felvett értékeit
  3. Az új mesterséges megfigyelésekre is alkalmazzuk a fekete-doboz modellünket
  4. Egy új, egyszerűbb kiegészítő/helyettesítő modellt illesztünk az új adatpontokra
  5. Ezzel az új modellel magyarázzuk a megfigyelésünket.

A Skater a LIME módszertant használja a megfigyelések lokális értelmezéséhez:

Ez a módszer átláthatóan szemlélteti, hogy egy 50k USD éves jövedelmet el nem érő személy ilyen modell előrejelzése mögött milyen input változók milyen mértékben játszanak szerepet:

Mit látunk az ábrán, és hogyan magyarázzuk ezzel az adott megfigyelést?

Vizsgáljuk meg ugyanezt az ellenkező esetben (50k USD feletti éves jövedelem) is:

SHAP

A SHAP (SHapley Additive exPlanations) egy egyesített megközelítés arra, hogy bármely modell kimenetelét tudjuk magyarázni. A SHAP a játékelméletet kapcsolja össze a lokális értelmezéssel, jónéhány korábbi módszert egyesítve annak érdekében, hogy egy konzisztens, és lokálisan pontos magyarázó változók additív összefüggésein alapuló megközelítést adjon.

Shap Intro

A modellek előrejelzési működését el lehet képzelni úgy, hogy

Lokális értelmezés

Tételezzük fel, hogy van egy betanított, komplex gépi tanulási algoritmusunk lakások bérleti díjának megbecslésére. Ha van egy lakásunk, mely

és amelyre a modell 200.000 forintos bérleti díj becslést ad,

továbbá az átlagos lakás bérleti díj 250.000 forint, akkor meg kellene magyarázni, hogy az átlagos esethez képest a magyarázó változók hogyan magyarázzák a 50.000 forintos eltérést.

A megoldás egyszerű lineáris regresszió esetében: az egyes magyarázó változók hatása egyenlő a magyarázó változó együtthatója megszorozva az adott magyarázó változó konkrét értéke mínusz az összes lakás átlagos hatása. Viszont komplexebb modellek esetén mi lehet a megoldás?

Lehet egyszer az előzőekben bemutatott LIME, másodszor a fent ismertetett, kooperatív játékelméleten alapuló SHapley érték, ami egy magyarázó változó átlagos határ hozzájárulása a magyarázó változók minden lehetséges kombinációja mentén. A minden lehetséges kombináció kiszámolása hosszadalmas lehet komplex problémák esetében, viszont kellően gyors implementáció létezik XGBoost, LightGBM, CatBoost, és scikit-learn fa alapú modellekre is.

Nézzünk egy konkrét példát a népszámlálási adatokra:

A fenti táblázatban szereplő értékek a SHAP értékék, melyek azt mutatják be, hogy az egyes magyarázó változók hogyan játszanak szerepet az adott megfigyelésre adott modell becslés átlagos modell becsléstől való eltérésében.

Az átlagos modell becslés a következő:

Force Plot

Nézzünk egy SHAP alapú vizualizációt, mely szépen megmutatja, hogy az egyes magyarázó változók hogyan járultak ahhoz hozzá, hogy az adott személy éves jövedelme ne haladja megy az 50k USD-t (és a modell átlagos becslése helyett erre a személyre ez az érték érték jöjjön ki).

Hogyan tudjuk ezt a megfigyelést magyarázni a SHAP segítségével?

Ugyanez a vizualizáció egy 50k USD feletti éves jövedelmű lakosra, azt mutatja meg, hogy e mögött az előrejelzés mögött milyen hatások lehettek:

Mik lehetnek a legnagyobb különbségek az előző személyhez képest, hogy itt ellenkező eredményre jut a modell?

Nézzük meg ezt a vizualizációt az első 1000 személyre is:

Az ábra interaktív, és a modellre vonatkozóan több érdekes döntési minta is leolvasható. Nézzünk meg néhányat!

Decision Plot

Ugyancsak a lokális értelmezést segítheti a következő ábra típus, mely megmutatja, hogy az átlagos modell kimeneti valószínűségtől az egyes változók adott megfigyelésnél felvett értékek hogyan térítik el az adott megfigyelés esetében a végső valószínűséget:

Globális értelmezés

SHAP Feature Importance (summary bar plot)

A feature importance az adott változóra vonatkozó SHAP értékek terjedelmét összesíti a teljes sokaságra:

SHAP Summary Plot

Ez a diagram szintén az egyes magyarázó változókhoz tartozó SHAP értékeket vizualizálja a teljes sokaságra.

Érdekes látni, hogy az életkor és a családi állapot általánosan fontos változó (ld. előző feature importance), viszont ahol a tőke nyereség szerepel, ott az sokkal fontosabb ezeknél a változóknál is.

SHAP Dependence Plot

A SHAP Dependence Plot hasonlít a DPD-hez, de itt az adott magyarázó változó különböző értéke mellett mutatja meg annak a változónak a SHAP értékét.

Milyen különbséget veszünk észre az eddigi PDP plotokhoz képest?

Más segédeszközök

Az előzőekben bemutatott segédeszközök mellett rengeteg más csomag is elérhető a modellek lokális és globális értelmezéséhez, néhány a legismertebb, legérdekesebb csomagok közül:

Dasboard-ok

Az interaktivitás és a csodálatos látvány kulcsfontosságú az adatokkal kapcsolatos meglátások, következtetések és modell eredmények közvetítésében. Az ilyen (jupyter) notebook-ok vagy web alkalmazások ideális előrehaladási utat jelenthetnek arra vonatkozóan, hogy az üzleti elemzőknek és data scientist-eknek miként kell bemutatniuk és kommunikálniuk az AI/ML eredményeket.

ExplainerDashboard

Az Oege Dijk által fejlesztett ExplainerDashboard egy kiterjedt és lebilincselő interaktív dashboard csomag, amellyel különféle ML-modellek általános magyarázhatósága érhető el. Sokkal részletesebb a Shapashhoz képest, vagyis nem korlátozódik csak a SHAP vagy a LIME eszközkészletére.

A csomag kényelmessé teszi a (scikit-learn kompatibilis) modellek értelmezésére, működésének megértésére, eredményeinek és teljesítményének értékelésére fókuszáló, interaktív webalkalmazások gyors elkészítését és üzembe helyezését. A dashboard interaktív diagram-csoportokat biztosít a modell teljesítményével, a változók fontosságával, a változók megfigyelésekhez történő hozzájárulásával, a "what if" elemzésekkel, a PDP és a SHAP diagramokkal, stb. kapcsolatban.

A felhasználó interaktívan felfedezheti a dashboard lehetőségeit, összetevőit notebook/colab környezetben (vagy egyszerűen elindíthat egy létező dashboard-ot közvetlenül onnan), tervezhet egyedi dashboard-ot egyedi elrendezéssel és magyarázatokkal, és akár több dashboard-ot is kombinálhat egyetlen ExplainerHub-ba.

Az elkészített dashboard-ok statikus html-be exportálhatók közvetlenül egy futó dashboard-ból, vagy automatizált CI/CD-telepítési folyamat részeként programozottan generálhatóak.

Példák: http://titanicexplainer.herokuapp.com

Készítsünk egy egyszerű, SHAP összefoglalót és SHAP PDP-t tartalmazó diagramot:

Az előre elkészített diagram-csoportok közül még néhány példa:

SHAP interakciós függőségi diagram két változó együttes vizsgálatára:

SHAP kontribúciós diagram az egyes megfigyelések vizsgálatára (az egyes attribútumok hogyan térítik el az átlagtól az adott megfigyelés output-ját):

SHAP PDP diagramm:

Nemcsak SHAP vagy LIME jellegű diagrammok érhetőek el, hanem például könnyen kaphatunk egy átfogó képet a modell teljesítményéről is:

Dashboard-ot készíthetünk az alapértelmezett beállításokkal is összesen 2 sor kód beírásával (nagyobb adatmennyiség esetében a dashboard összeállítása akár több percet is igénybe vehet):

Egyéb dashboard csomagok:

DrWhy.AI: R-ban is elérhető átfogó csomag-szett, mely egyrészt könnyen használható/általános adaptereket (előtét függvényeket - wrapper-eket) tartalmaz különböző ML keretrendszerekre (scikit-learn, keras, h2o, xgboost, tidymodels, mlr, mlr3), másrészt általános, illetve modell specifikus lokális/globális modell értelmezőket használhatunk a segítségével (feature importance, PDP & ALE diagrammok, Breakdown & SHAP vízesés diagrammok, stb.). A diagrammok interaktívak és web alapú dashboard-ok is készíthetőek belőlük (Arena dashboard-ok). A csomag tartalmaz fairness modult is, ami az XAI csomagok többségéből hiányzik.

Shapash: Ez ExplainerDashboard-nál egyszerűbb, inkább csak a magyarázhatóságra fókuszáló python csomag, amelyet egy francia biztosító, a MAIF data scientist-jei építettek, különféle vizualizációkat állíthatunk össze a SHAP/LIME funkcióit felhasználva, és egy könnyen használható interaktív dashboard-ot készíthetünk segítségével web alkalmazásként.

Explainable Boosting Machine (EBM): https://interpret.ml/ által készített csomag, mely az értelmezhetőségre is fókuszál a komplexebb modellek magyarázhatósága mellett. A modellezési feladatra felkínál "glass-box" modelleket, melyek között a hagyományos értelmezhető modellek (döntési fa, lineáris/logisztikus regresszió, decision rule list) mellett kifejlesztett egy boosting additív döntési fa algoritmust, mely sok változó helyett egyetlen változóra épít boosting alapon döntési fákat és ezen döntési fák kombinációja adja a végső modellt. Az új algoritmuson alapuló modell teljesítménye ígéretes és ráadásul könnyen értelmezhető. Maga a csomag a "glass-box" modellek mellett a hagyományos SHAP, LIME, PDP megközelítéseket is felhasználja, és ebből könnyen lehet web alapú dashboard-ot is készíteni.

Gyakorló feladat

Olvassuk be a FIFA 2018-as adatbázisának csatolt, már előkészített részét, és - miután építettünk egy közvetlenül nem értelmezhető klasszfikációs modellt (randomforest, xgboost, stb.) a "Man_of_the_Match" attribútumra - próbáljunk a fenti módszerekkel egyikével globális értelmezést adni arra, hogy milyen magyarázó változók játszhatnak közre abban, hogy az adott meccsen az adott csapatból választják ki a "meccs emberét".

Köszönöm a figyelmet!

Oltyán Gábor - gabor.oltyan@pwc.com